package taller.webservice;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

import taller.businessLayer.BusinessFacade;
import taller.excepcion.ParserException;
import taller.xml.parser.DatosRodamientoParser;
import taller.xml.parser.XStreamParser;

import com.thoughtworks.xstream.XStream;

@Stateless
@WebService
public class ReceptorDeRodamientosServer implements ReceptorDeRodamientos{
	@EJB
	private BusinessFacade businessFacade;
	
    public ReceptorDeRodamientosServer() {
    }

    @WebMethod
    public void informarRodamiento(String xml) {
    	
    	try{
    		System.out.println("Rodamiento recibido:");
    		System.out.println(xml);
    		
	    	XStreamParser parser = new XStreamParser();
	    	XStream xs = parser.obtenerXStream();
	    	xs.alias("DatosRodamiento", DatosRodamientoParser.class); 
			xs.aliasField("Rodamiento", DatosRodamientoParser.class, "rodamiento");
	    	DatosRodamientoParser rodRecibido = (DatosRodamientoParser) xs.fromXML(xml);
	    	parser.liberarXStream();
	    	
	    	businessFacade.guardarOficVtaAsignada(rodRecibido.getOficinaVta());
	    	businessFacade.guardarRodamiento(rodRecibido.getRodamiento());
	    	
	    	System.out.println("Rodamiento persistido");
    	} catch (ParserException e) {
			e.printStackTrace();
		}
    }
}
